package com.yanqu.road.entity.activity.shushan;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.DataStatus;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @Description
 * @Author cwq
 * @Data 2022/3/8 16:31
 */
@FieldTypeAnnotation(tableName = "t_u_activity_shushan_user_data")
public class ShuShanUserData extends DataObject {
    @FieldTypeAnnotation(desc = "活动ID", select = true, update = true)
    private int activityId;
    @FieldTypeAnnotation(desc = "用户ID", select = true, update = true)
    private long userId;
    @FieldTypeAnnotation(desc = "宗派名称")
    private String partyName;
    @FieldTypeAnnotation(desc = "玩家自己取名时间")
    private int takeNameTime;
    @FieldTypeAnnotation(desc = "声望")
    private long prestige;
    @FieldTypeAnnotation(desc = "最大的仙力值")
    private long maxMagic;
    @FieldTypeAnnotation(desc = "可选拔次数")
    private int getTimes;
    @FieldTypeAnnotation(desc = "选拔刷新时间")
    private int getRefreshTime;
    @FieldTypeAnnotation(desc = "每日已购买选拔次数")
    private int buyGetTimes;
    @FieldTypeAnnotation(desc = "每日刷新已购买选拔次数时间")
    private int buyGetRefreshTime;
    @FieldTypeAnnotation(desc = "上次日常事件触发时间")
    private int eventRefreshTime;
    @FieldTypeAnnotation(desc = "已随机弟子次数")
    private int randomDiscipleNum;
    @FieldTypeAnnotation(desc = "下次可领取的日常事件id")
    private int canReceiveEventId;
    @FieldTypeAnnotation(desc = "已领取已发展事件 k:id v:选项id")
    private Map<Integer, Integer> growEventFinishMap = new ConcurrentHashMap<>();
    @FieldTypeAnnotation(desc = "离开系统的时间")
    private int exitTime;
    @FieldTypeAnnotation(desc = "是否领取引导奖励")
    private boolean receiveGuideReward;
    @FieldTypeAnnotation(desc = "拥有快速修行的次数")
    private int goodExerciseTimes;
    @FieldTypeAnnotation(desc = "可选拔的弟子")
    private List<ShuShanDiscipleBaseInfo> discipleList = new ArrayList<>();
    @FieldTypeAnnotation(desc = "未触发品质的次数")
    private Map<Integer, Integer> unTriggerQualityMap = new ConcurrentHashMap<>();
    @FieldTypeAnnotation(desc = "离线修炼数据 K：弟子id ")
    private Map<Integer, ShuShanExerciseInfo> offLineExerciseInfoMap = new ConcurrentHashMap<>();

    public int getActivityId() {
        return activityId;
    }
    public void setActivityId(int activityId) {
        if (this.activityId != activityId) {
            this.activityId = activityId;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public String getPartyName() {
        return partyName;
    }
    public void setPartyName(String partyName) {
        if (partyName == null){
            return;
        }
        if (this.partyName == null || !this.partyName.equals(partyName)) {
            this.partyName = partyName;
            setOp(DataStatus.Update);
        }
    }

    public int getTakeNameTime() {
        return takeNameTime;
    }

    public void setTakeNameTime(int takeNameTime) {
        if (this.takeNameTime != takeNameTime) {
            this.takeNameTime = takeNameTime;
            setOp(DataStatus.Update);
        }
    }

    public long getPrestige() {
        return prestige;
    }
    public void setPrestige(long prestige) {
        if (this.prestige != prestige) {
            this.prestige = prestige;
            setOp(DataStatus.Update);
        }
    }

    public long getMaxMagic() {
        return maxMagic;
    }
    public void setMaxMagic(long maxMagic) {
        if (this.maxMagic != maxMagic) {
            this.maxMagic = maxMagic;
            setOp(DataStatus.Update);
        }
    }

    public int getGetTimes() {
        return getTimes;
    }
    public void setGetTimes(int getTimes) {
        if (this.getTimes != getTimes) {
            this.getTimes = getTimes;
            setOp(DataStatus.Update);
        }
    }

    public int getGetRefreshTime() {
        return getRefreshTime;
    }
    public void setGetRefreshTime(int getRefreshTime) {
        if (this.getRefreshTime != getRefreshTime) {
            this.getRefreshTime = getRefreshTime;
            setOp(DataStatus.Update);
        }
    }

    public int getBuyGetTimes() {
        return buyGetTimes;
    }
    public void setBuyGetTimes(int buyGetTimes) {
        if (this.buyGetTimes != buyGetTimes) {
            this.buyGetTimes = buyGetTimes;
            setOp(DataStatus.Update);
        }
    }

    public int getBuyGetRefreshTime() {
        return buyGetRefreshTime;
    }

    public void setBuyGetRefreshTime(int buyGetRefreshTime) {
        if (this.buyGetRefreshTime != buyGetRefreshTime) {
            this.buyGetRefreshTime = buyGetRefreshTime;
            setOp(DataStatus.Update);
        }
    }

    public int getEventRefreshTime() {
        return eventRefreshTime;
    }
    public void setEventRefreshTime(int eventRefreshTime) {
        if (this.eventRefreshTime != eventRefreshTime) {
            this.eventRefreshTime = eventRefreshTime;
            setOp(DataStatus.Update);
        }
    }

    public int getRandomDiscipleNum() {
        return randomDiscipleNum;
    }
    public void setRandomDiscipleNum(int randomDiscipleNum) {
        if (this.randomDiscipleNum != randomDiscipleNum) {
            this.randomDiscipleNum = randomDiscipleNum;
            setOp(DataStatus.Update);
        }
    }

    public int getCanReceiveEventId() {
        return canReceiveEventId;
    }
    public void setCanReceiveEventId(int canReceiveEventId) {
        if (this.canReceiveEventId != canReceiveEventId) {
            this.canReceiveEventId = canReceiveEventId;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, java.lang.Integer> getGrowEventFinishMap() {
        return growEventFinishMap;
    }
    public void setGrowEventFinishMap(java.util.Map<java.lang.Integer, java.lang.Integer> growEventFinishMap) {
        if (null == growEventFinishMap){
            return;
        }
        if (this.growEventFinishMap == null || !this.growEventFinishMap.equals(growEventFinishMap)) {
            this.growEventFinishMap = growEventFinishMap;
            setOp(DataStatus.Update);
        }
    }

    public int getExitTime() {
        return exitTime;
    }
    public void setExitTime(int exitTime) {
        if (this.exitTime != exitTime) {
            this.exitTime = exitTime;
            setOp(DataStatus.Update);
        }
    }

    public boolean getReceiveGuideReward() {
        return receiveGuideReward;
    }
    public void setReceiveGuideReward(boolean receiveGuideReward) {
        if (this.receiveGuideReward != receiveGuideReward) {
            this.receiveGuideReward = receiveGuideReward;
            setOp(DataStatus.Update);
        }
    }

    public int getGoodExerciseTimes() {
        return goodExerciseTimes;
    }
    public void setGoodExerciseTimes(int goodExerciseTimes) {
        if (this.goodExerciseTimes != goodExerciseTimes) {
            this.goodExerciseTimes = goodExerciseTimes;
            setOp(DataStatus.Update);
        }
    }

    public java.util.List<com.yanqu.road.entity.activity.shushan.ShuShanDiscipleBaseInfo> getDiscipleList() {
        return discipleList;
    }
    public void setDiscipleList(java.util.List<com.yanqu.road.entity.activity.shushan.ShuShanDiscipleBaseInfo> discipleList) {
        if (null == discipleList){
            return;
        }
        if (this.discipleList == null || !this.discipleList.equals(discipleList)) {
            this.discipleList = discipleList;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, java.lang.Integer> getUnTriggerQualityMap() {
        return unTriggerQualityMap;
    }
    public void setUnTriggerQualityMap(java.util.Map<java.lang.Integer, java.lang.Integer> unTriggerQualityMap) {
        if (null == unTriggerQualityMap){
            return;
        }
        if (this.unTriggerQualityMap == null || !this.unTriggerQualityMap.equals(unTriggerQualityMap)) {
            this.unTriggerQualityMap = unTriggerQualityMap;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.shushan.ShuShanExerciseInfo> getOffLineExerciseInfoMap() {
        return offLineExerciseInfoMap;
    }
    public void setOffLineExerciseInfoMap(java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.shushan.ShuShanExerciseInfo> offLineExerciseInfoMap) {
        if (null == offLineExerciseInfoMap){
            return;
        }
        if (this.offLineExerciseInfoMap == null || !this.offLineExerciseInfoMap.equals(offLineExerciseInfoMap)) {
            this.offLineExerciseInfoMap = offLineExerciseInfoMap;
            setOp(DataStatus.Update);
        }
    }
}
